package cn.janyd.jmall.user.rpc.user;

import cn.janyd.common.core.vo.CommonResult;
import cn.janyd.jmall.user.rpc.user.dto.UserCreateReqDTO;
import cn.janyd.jmall.user.rpc.user.dto.UserRespDTO;
import cn.janyd.jmall.user.rpc.user.dto.UserUpdateReqDTO;

/**
 * @author janyd
 * @since 2020/8/10 15:18
 */
public interface UserRpcService {

    /**
     * 获取用户信息
     *
     * @param userId 用户ID
     * @return 用户信息
     */
    CommonResult<UserRespDTO> getUser(Integer userId);

    /**
     * 基于手机号码创建用户
     * 如果用户已经存在则返回用户信息
     *
     * @param userCreateReq 创建用户 DTO
     * @return 用户信息
     */
    CommonResult<UserRespDTO> createUserIfAbsent(UserCreateReqDTO userCreateReq);

    /**
     * 更新用户信息
     *
     * @param userUpdateReq 用户信息
     * @return 是否成功
     */
    CommonResult<Boolean> updateUser(UserUpdateReqDTO userUpdateReq);

}
